



// #include  "iot_node_func.h"


#ifndef __IOT_NODE_FUNC_H__
#define __IOT_NODE_FUNC_H__

#include  <stdint.h>
#include "dev_manager.h"

//自动组网生成节点组网信息
// ret=0:fail ;ret>0:ok
uint8_t iot_CCT_Local_DeleteNode(uint8_t* id );


//DeleteNodeWithIndex
// ret=0:fail ;ret>0:ok
uint8_t  iot_CCT_Local_DeleteNodeWithIndex(uint8_t idx);


//自动组网生成节点组网信息
void iot_CCT_Local_AddNode(uint8_t* id ,uint8_t group,uint8_t type);




// 方法功能: 查找组号对应的节点id,
//输入参数: group_num--需要查找的组号，begin此次开始查找的下标，
//返回参数: *cur返回查找到最近一次节点的下标，*id返回查找到节点的id指针
//返回值:    ret = 0查找失败，ret = 1查找成功
uint8_t  iot_find_node_id_with_group_number( uint8_t group_num,uint8_t* cur,  uint64_t* id);

int16_t  iot_find_node_index_with_id(uint64_t* rcv_id );

/////子设备唯一ID（取值范围：1~65535）
//{平台自动生成，与设备类型绑定，下发给网关，网关需要保存}
//根据sub_uid 查找对应的下标
//返回 0=查找失败， !0= 查找成功
uint8_t  iot_find_node_index_with_sub_uid(uint16_t sub_uid,uint8_t* index );

//返回 0=查找失败， !0= 查找成功
uint8_t  iot_find_node_index_with_info(dev_mod_info_t* info,uint8_t* index );


//根据 inddex 查找对应的通道信息
//返回 0=查找失败， !0= 查找成功
uint8_t  iot_get_mod_info_with_index(uint8_t index ,dev_mod_info_t* info);



//根据下标 查找对应的 sub_uid
//返回 0=查找失败， !0= 查找成功 
uint8_t  iot_get_node_sub_uid_with_index( uint8_t index,  uint16_t* sub_uid);

uint8_t  iot_get_node_id_with_index( uint8_t index,  uint64_t* id);

//获取索引下标对应的节点ID 指针
//返回值: NULL 查找失败，!NULL查找成功
uint64_t*  iot_get_node_id_point_with_index( uint8_t index );

uint8_t  iot_get_node_group_with_index( uint8_t index);

//uint8_t  iot_get_device_id_with_index( uint8_t index);
//---device_id 设备类型
 uint16_t  iot_get_node_type_with_index( uint8_t index);

void  iot_set_device_name_with_index( uint8_t index, char* pdev_name_str);

uint8_t  iot_get_device_flag_with_index( uint8_t index);
void     iot_set_device_flag_with_index( uint8_t index, uint8_t flag);
void     iot_reset_device_flag( void);


//返回0=表示离线，0!=表示在线
uint8_t  iot_get_device_online_state_with_index( uint8_t index);

void     iot_set_device_online_state_with_index( uint8_t index, uint8_t state);

////返回 0=查找失败， !0= 查找成功
uint8_t  iot_get_device_online_state( uint16_t sub_id, uint8_t* online );
//B8---node flag 0xFF 表示失败
uint8_t  iot_get_device_rtc_flag_with_index( uint8_t index);


void     iot_set_device_online_state( uint16_t sub_id, uint8_t state);
void     iot_reset_device_online_state(void);
void     iot_reset_device_whitename_added(void);



void  iot_set_device_rtc_flag_with_index( uint8_t index, uint8_t state);

void  iot_set_device_update_flag_with_index( uint8_t index, uint8_t state);
void  iot_set_device_update_flag_with_id( uint16_t sub_id, uint8_t state);


//uint8_t  get_config_node_number( void);


#endif      //======__IOT_NODE_FUNC_H__=========












